package com.grupo26.mremployee;

import java.util.ArrayList;

public class Pedido {

	private final int cod;
	private static int cod_aux=1;
	private int tempo_total;
	private double preco=0;
	private ArrayList<Produto> array_produtos;
	
	public Pedido() {
		this.cod = cod_aux;
		cod_aux++;
		array_produtos = new ArrayList<Produto>();
	}

	public void addProduto(Produto prodt){
		this.array_produtos.add(prodt);
		this.tempo_total += prodt.getTempo();
		this.preco += prodt.getPreco();
		int pos = this.array_produtos.indexOf(prodt);
		this.array_produtos.get(pos).setQuantidade(1);
	}
	
	public int getTempoEspera(){
			return this.tempo_total;
	}

	public int getCod() {
		return cod;
	}

	public int getTempo_total() {
		return tempo_total;
	}

	public double getPreco() {
		return preco;
	}

	public ArrayList<Produto> getArrayProdutos() {
		return array_produtos;
	}
	
	public int getArraySize() {
		return array_produtos.size();
	}
	
	public String getSpecificProductName(int position) {
		if (array_produtos.isEmpty()) {
	        return "";
	    }else{
	    	return array_produtos.get(position).getNome();
	    }
	 }
	
	public boolean getIsEmpty(){
		
		if (array_produtos.isEmpty())
			return true;
		else
			return false;
	}
	
	//Set preco; Handler serve para saber se foi chamado pelo insere ou pelo remove
	public void setPreco(double preco_novo,int handler){ 
		if(handler == 1){
			preco = preco+preco_novo;
		}
		else
			preco = preco-preco_novo;
		
		if(preco < 0)
			preco = 0;
	}
	
	//Verifica se existe, comparando os ID's
	public boolean getProdutoExiste(int cod){ 
		int pos;

		for(int i=0;i<array_produtos.size();i++){
			if(array_produtos.get(i).getCod_produto() == cod){
				pos = i;
				return true;
			}
		}
		return false;
	}
	
	//Set quantidade; Handler serve para saber se foi chamado pelo insere ou pelo remove
	public void setQuantidadeProduto(int cod, int handler){
		int qtd;

		for(int i=0;i<array_produtos.size();i++){
			if(array_produtos.get(i).getCod_produto() == cod){
				qtd = array_produtos.get(i).getQuantidade();
				if(handler == 1)
					array_produtos.get(i).setQuantidade(qtd+1);
				else {
					if(qtd == 1)
						array_produtos.remove(i);
						else
							array_produtos.get(i).setQuantidade(qtd-1);
				}
			}
		}
	}
	
	public int getQuantidadeProduto(int position){
		return array_produtos.get(position).getQuantidade();
	}
}